package com.cysoft.starter.log.core.model;


import com.cysoft.starter.log.core.helper.SnowflakeIdGeneratorHelper;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

@Data
public class LogInfo {

    /**
     * 主键id 默认雪花算法生成
     */
    private Long id = SnowflakeIdGeneratorHelper.nextId();

    /**
     * 日志类型 login:登录日志 service:服务请求日志 默认为服务请求日志
     */
    private String logType = "service";

    /**
     * 请求地址
     */
    private String requestUrl;

    /**
     * 请求ip
     */
    private String requestIp;

    /**
     * 请求头信息 使用JSON存储
     */
    private String requestHeader;

    /**
     * 请求体,所有请求参数默认转换成JSON方式进行存储
     */
    private String requestBody;

    /**
     * 响应体,所有相应参数默认转换成JSON方式进行存储
     */
    private String responseBody;


    /**
     * 请求方式 GET/POST/PUT/DELETE/PATCH
     */
    private String requestMethod;

    /**
     * 请求结果 true 成功 false 失败 请求抛出异常则记录请求失败
     */
    private Boolean requestResult;

    /**
     * 异常信息
     */
    private String errorMessage;

    /**
     * 创建时间 默认当前时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime = LocalDateTime.now();


    /**
     * 处理耗时 默认为0
     */
    private long duration = 0;

    /**
     * 包信息
     */
    private String packageInfo;

    /**
     * 类信息
     */
    private String classInfo;

    /**
     * 方法信息
     */
    private String methodInfo;

    /**
     * 操作人
     */
    private String operator;


}
